Modern computing networks operate with an increasing number of computing nodes to support a wide variety of applications and services. Computing nodes in the networks may include a switch (e.g., a router) or an end point (e.g., a host device). A computing node can be a state machine and operate on an input to change the status and/or cause an action to take place for a given change.
However, it's a challenge to ensure that a state machine is not in an inconsistent state or does not remain in an inconsistent state for an extended period of time. This problem becomes even more challenging when complexities of state machines increase beyond moderate levels and can be exposed to corner cases and race conditions.